Программирование сетевых приложений
Работа с UDP-сокетами
#include <sys/socket.h>
#include <netinet/in.h>
int createUDPSocket() {
return socket(AF_INET, SOCK_DGRAM, 0);
}
void sendUDPMessage(int socket, const std::string& message,
const std::string& serverIP, int port) {
sockaddr_in serverAddr;
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(port);
serverAddr.sin_addr.s_addr = inet_addr(serverIP.c_str());
sendto(socket, message.c_str(), message.length(), 0,
(struct sockaddr*)&serverAddr, sizeof(serverAddr));
}
std::string receiveUDPMessage(int socket) {
char buffer[1024] = {0};
sockaddr_in clientAddr;
socklen_t clientLen = sizeof(clientAddr);
int bytesReceived = recvfrom(socket, buffer, 1024, 0,
(struct sockaddr*)&clientAddr,
&clientLen);
if (bytesReceived > 0) {
return std::string(buffer, bytesReceived);
}
return "";
}